/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.thienloc.omap.util;

import com.thienloc.omap.lotteryanalyze.Pattern;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

/**
 *
 * @author GiangLT
 */
public class Constant {

    public final static String MODULE_NAME = "omap71";
    public final static String BASE_FOLDER = System.getProperty("user.home") + File.separator;
    public final static String LOG_FOLDER = BASE_FOLDER + "log" + File.separator + MODULE_NAME + File.separator;
    public final static String CONFIG_FOLDER = BASE_FOLDER + "config" + File.separator + MODULE_NAME + File.separator;
    public final static String CONFIG_FILE_NAME = MODULE_NAME + ".props";
    public final static String CONFIG_FILE_PATH = CONFIG_FOLDER + CONFIG_FILE_NAME;
    public final static String LOG4J_FILE_NAME = MODULE_NAME + "-log4j.props";
    public final static String LOG4J_FILE_PATH = CONFIG_FOLDER + LOG4J_FILE_NAME;
    public final static String SYS_CONFIG_NAME = "omap71";
    //modules
    public static final String BROADCAST_MODULE_NAME = "broadcast";
    //services
    public static final String KQXS_SERVICE_NAME = "KQXS";
    public static final String KET_SERVICE_NAME = "K2";
    public static final String CAU_SERVICE_NAME = "CAU";
    public static final String DEP_SERVICE_NAME = "D2";
    public static final String D2HELP_SERVICE_NAME = "D2HELP";
    public static final String KEP_SERVICE_NAME = "KEP";
    public static final String LOKEP_SERVICE_NAME = "KEP";
    public static final String MO_SERVICE_NAME = "M2";
    public static final String NUOI_SERVICE_NAME = "N2";
    public static final String SOI_SERVICE_NAME = "S2";
    public static final String TIP_SERVICE_NAME = "TIP";
    public static final String X2_SERVICE_NAME = "X2";
    public static final String TXTBASE_SERVICE_NAME = "TXTBASE_6771";
    //constant values
    public static final Map<String, Pattern[]> kqxsPatternMap;

    static {
        Map<String, Pattern[]> aMap = new TreeMap<String, Pattern[]>();
        aMap.put(
                "Miền Bắc",
                new Pattern[]{
                    new Pattern("Giải đặc biệt", 1, 5),
                    new Pattern("Giải nhất", 1, 5),
                    new Pattern("Giải nhì", 2, 5),
                    new Pattern("Giải ba", 6, 5),
                    new Pattern("Giải tư", 4, 4),
                    new Pattern("Giải năm", 6, 4),
                    new Pattern("Giải sáu", 3, 3),
                    new Pattern("Giải bảy", 4, 2)
                });
        aMap.put(
                "Miền Trung",
                new Pattern[]{
                    new Pattern("Giải đặc biệt", 1, 6),
                    new Pattern("Giải nhất", 1, 5),
                    new Pattern("Giải nhì", 1, 5),
                    new Pattern("Giải ba", 2, 5),
                    new Pattern("Giải tư", 7, 5),
                    new Pattern("Giải năm", 1, 4),
                    new Pattern("Giải sáu", 3, 4),
                    new Pattern("Giải bảy", 1, 3),
                    new Pattern("Giải tám", 1, 2)
                });
        aMap.put(
                "Miền Nam",
                new Pattern[]{
                    new Pattern("Giải đặc biệt", 1, 6),
                    new Pattern("Giải nhất", 1, 5),
                    new Pattern("Giải nhì", 1, 5),
                    new Pattern("Giải ba", 2, 5),
                    new Pattern("Giải tư", 7, 5),
                    new Pattern("Giải năm", 1, 4),
                    new Pattern("Giải sáu", 3, 4),
                    new Pattern("Giải bảy", 1, 3),
                    new Pattern("Giải tám", 1, 2)
                });

        kqxsPatternMap = Collections.unmodifiableMap(aMap);
    }
    public static final Map<String, String> requestStatuses;

    static {
        Map<String, String> aMap = new TreeMap<String, String>();
        aMap.put("WAITING", "WAITING");
        aMap.put("PROCESSING", "PROCESSING");
        aMap.put("COMPLETED", "COMPLETED");
        requestStatuses = Collections.unmodifiableMap(aMap);
    }
    public static final Map<String, String> moduleCommands;

    static {
        Map<String, String> aMap = new TreeMap<String, String>();
        aMap.put("PAUSE", "PAUSE");
        aMap.put("UNPAUSE", "UNPAUSE");
        aMap.put("STOP", "STOP");
        moduleCommands = Collections.unmodifiableMap(aMap);
    }
    public static final Map<String, String> broadcastStatuses;

    static {
        Map<String, String> aMap = new TreeMap<String, String>();
        aMap.put("WAITING", "WAITING");
        aMap.put("PROCESSING", "PROCESSING");
        aMap.put("COMPLETED", "COMPLETED");
        broadcastStatuses = Collections.unmodifiableMap(aMap);
    }
    public static List<Character> vnNativeChars;

    static {
        List<Character> chars = new ArrayList<Character>();
        chars.add('à');
        chars.add('á');
        chars.add('ạ');
        chars.add('ả');
        chars.add('ã');
        chars.add('â');
        chars.add('ầ');
        chars.add('ấ');
        chars.add('ậ');
        chars.add('ẩ');
        chars.add('ẫ');
        chars.add('ă');
        chars.add('ằ');
        chars.add('ắ');
        chars.add('ặ');
        chars.add('ẳ');
        chars.add('ẵ');
        chars.add('è');
        chars.add('é');
        chars.add('ẹ');
        chars.add('ẻ');
        chars.add('ẽ');
        chars.add('ê');
        chars.add('ề');
        chars.add('ế');
        chars.add('ệ');
        chars.add('ể');
        chars.add('ễ');
        chars.add('ì');
        chars.add('í');
        chars.add('ị');
        chars.add('ỉ');
        chars.add('ĩ');
        chars.add('ò');
        chars.add('ó');
        chars.add('ọ');
        chars.add('ỏ');
        chars.add('õ');
        chars.add('ô');
        chars.add('ồ');
        chars.add('ố');
        chars.add('ộ');
        chars.add('ổ');
        chars.add('ỗ');
        chars.add('ơ');
        chars.add('ờ');
        chars.add('ớ');
        chars.add('ợ');
        chars.add('ở');
        chars.add('ỡ');
        chars.add('ù');
        chars.add('ú');
        chars.add('ụ');
        chars.add('ủ');
        chars.add('ũ');
        chars.add('ư');
        chars.add('ừ');
        chars.add('ứ');
        chars.add('ự');
        chars.add('ử');
        chars.add('ữ');
        chars.add('ỳ');
        chars.add('ý');
        chars.add('ỵ');
        chars.add('ỷ');
        chars.add('ỹ');
        chars.add('đ');
        chars.add('À');
        chars.add('Á');
        chars.add('Ạ');
        chars.add('Ả');
        chars.add('Ã');
        chars.add('Â');
        chars.add('Ầ');
        chars.add('Ấ');
        chars.add('Ậ');
        chars.add('Ẩ');
        chars.add('Ẫ');
        chars.add('Ă');
        chars.add('Ằ');
        chars.add('Ắ');
        chars.add('Ặ');
        chars.add('Ẳ');
        chars.add('Ẵ');
        chars.add('È');
        chars.add('É');
        chars.add('Ẹ');
        chars.add('Ẻ');
        chars.add('Ẽ');
        chars.add('Ê');
        chars.add('Ề');
        chars.add('Ế');
        chars.add('Ệ');
        chars.add('Ể');
        chars.add('Ễ');
        chars.add('Ì');
        chars.add('Í');
        chars.add('Ị');
        chars.add('Ỉ');
        chars.add('Ĩ');
        chars.add('Ò');
        chars.add('Ó');
        chars.add('Ọ');
        chars.add('Ỏ');
        chars.add('Õ');
        chars.add('Ô');
        chars.add('Ồ');
        chars.add('Ố');
        chars.add('Ộ');
        chars.add('Ổ');
        chars.add('Ỗ');
        chars.add('Ơ');
        chars.add('Ờ');
        chars.add('Ớ');
        chars.add('Ợ');
        chars.add('Ở');
        chars.add('Ỡ');
        chars.add('Ù');
        chars.add('Ú');
        chars.add('Ụ');
        chars.add('Ủ');
        chars.add('Ũ');
        chars.add('Ư');
        chars.add('Ừ');
        chars.add('Ứ');
        chars.add('Ự');
        chars.add('Ử');
        chars.add('Ữ');
        chars.add('Ỳ');
        chars.add('Ý');
        chars.add('Ỵ');
        chars.add('Ỷ');
        chars.add('Ỹ');
        chars.add('Đ');
        vnNativeChars = Collections.unmodifiableList(chars);
    }
    ;
    
    public static List<Character> vnSimplyfiedChars;

    static {
        List<Character> chars = new ArrayList<Character>();
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('a');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('e');
        chars.add('i');
        chars.add('i');
        chars.add('i');
        chars.add('i');
        chars.add('i');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('o');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('u');
        chars.add('y');
        chars.add('y');
        chars.add('y');
        chars.add('y');
        chars.add('y');
        chars.add('d');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('A');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('E');
        chars.add('I');
        chars.add('I');
        chars.add('I');
        chars.add('I');
        chars.add('I');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('O');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('U');
        chars.add('Y');
        chars.add('Y');
        chars.add('Y');
        chars.add('Y');
        chars.add('Y');
        chars.add('D');
        vnSimplyfiedChars = Collections.unmodifiableList(chars);
    }
    ;
    //security
    public static final int PASSWORD_ITERATION_NUM = 5;
    public static final int ORACLE_CURSOR_LENGTH = 500;
    /*regions*/
    public static final String MB_REGION = "MB";
    public static final String MT_REGION = "MT";
    public static final String MN_REGION = "MN";
    public static final String ALL_REGION = "ALL";
}
